# Тема 6. Программа для ЭВМ

Мы изучили два способа выполнения:
- запуск скомпилированной программы;
- выполнение программы в режиме интерпретации.

В этой теме мы рассмотрим:
## что такое указатели;
## зачем нужны типы данных;
## распределение памяти во время выполнения программы;
## способы передачи параметров.

### Архитектура фон Неймана

![](_src/1.jpg)
![](_src/2.jpg)

### Рассмотрим пример.размер каждого слова ‒ 16 бит
 Будем считать, что мы имеем некоторый условный компьютер. Данные в памяти хранятся в словах, размер каждого слова ‒ 16 бит.

#### программный счетчик
 В процессоре есть особый регистр, который реализует программный счетчик. Программный счетчик выбирает следующую инструкцию для выполнения.

 #### Указатели 
 Указатель в программировании – это адрес, по которому процессор будет искать данные.

![](_src/3.jpg)

•0x000F – ссылка на 16-ю ячейку памяти;
•0xFFFF – ссылка на последнюю ячейку памяти, имеющую номер 65 535.

#### Организация адресации памяти

![](_src/4.jpg)

#### Типы данных

![](_src/5.jpg)

##### Целые типы

![](_src/6.jpg)

##### Вещественные типы

![](_src/7.jpg)

###### IEEE 754

##### Символьные типы

![](_src/8.jpg)

##### Строковые типы

![](_src/9.jpg)

##### Интерпретация памяти. Наложение указателей

![](_src/10.jpg)

##### Литералы

![](_src/11.jpg)

##### Вещественные, символьные и строковые литералы

![](_src/12.jpg)

#### Разыменование указателей

![](_src/13.jpg)

#### Переменные и константы

![](_src/14.jpg)

#### Еще раз про типы

![](_src/15.jpg)

### Структурное программирование: процедуры и функции

![](_src/16.jpg)

#### Структурное программирование: модель памяти

![](_src/17.jpg)

##### Вычислительный стек

![](_src/18.jpg)

###### программный счетчик – указатель на активный фрейм.

##### Куча и способы управления памятью

![](_src/19.jpg)

##### Способы передачи параметров в функции

![](_src/20.jpg)

###### Особенности передачи параметров по имени и значению

![](_src/21.jpg)

